let unknowX: unknown
let anyY: any

// 这里必须给num一个类型，不能让ts推断这里是隐式的any，因为开启了"noImplicitAny": true配置。
function sayHi(num: number) {
  console.log(num);
}

// 注意 unknown 和 any的区别在于: unknown更安全，他不能够赋值给其他类型，但是any可以
// num = unknowX // 报错
// num = anyY
// unknown 类型在使用时注意缩小类型

function printMsg(arg: unknown) {
  if(typeof arg === 'string') {
    console.log(arg.length);
  } else if ( typeof arg === 'number') {
    console.log(arg + 1);
  }
}
printMsg(123)
printMsg('hello')
printMsg(true)


export {}